package com.bert.service;

import com.bert.entity.SkyWalking.ServiceResultEntity;
import com.bert.entity.SkyWalking.SpanResultEntity;
import com.bert.entity.SkyWalking.TagInfoEntity;
import com.bert.entity.SkyWalking.TraceResultEntity;

import java.util.List;

public interface SkyWalkingService {

    /**
     * 获取SkyWalking所有的服务信息
     * @return Services
     */
    List<ServiceResultEntity> getServiceList();

    /**
     * 根据时间段，获取服务的链路信息
     * @param serviceId 服务
     * @param startTime 开始时间
     * @param endTIme 结束时间
     * @param pageNum 分页
     * @param pageSize 分页
     * @return Traces
     */
    List<TraceResultEntity> getTraceList(String serviceId, Long timeOut, String startTime, String endTIme, Integer pageNum, Integer pageSize);

    /**
     * 根据链路ID，获取链路详细
     * @param trace 链路ID
     * @return Spans
     */
    List<SpanResultEntity> getSpanList(String trace);

    /**
     * 根据时间段，获取所有超时的接口详情
     * @param timeOut 超时时间
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @param pageNum 分页
     * @param pageSize 分页
     * @return List<TagInfoEntity>
     */
    List<TagInfoEntity> getTagInfoList(String startTime, String endTime, Long timeOut, Integer pageNum, Integer pageSize);

}
